Test automation is the use of software to control the execution of tests, the comparison of actual outcomes to predicted outcomes, the setting up of test preconditions, and other test control and test reporting functions. An automation framework is not a single tool to perform some specific testing task, but a set of tools that provide support for automated software testing in a unified manner, thereby providing a common platform for an automation engineer to do a job. If there is change to any test case for an application that is being tested, only the test case file needs to be updated, such that the driver script and startup script remain the same. The automation framework integrates the function libraries, test data sources, object details and various reusable modules. The automation framework is responsible for defining the format in which to express expectations, creating a mechanism to drive the application being tested, executing the tests, and reporting the results. Typically an automation framework resides on a host computer and includes a test initializer, a script parser, a script execution engine, and a logger that logs and reports the test results.